package com.wxxymaker.service;

import com.blade.ioc.annotation.Bean;
import com.blade.ioc.annotation.Inject;
import com.wxxymaker.model.dao.VisitorDao;
import com.wxxymaker.model.entity.Visitor;
import com.wxxymaker.utils.IpUtils;
import com.wxxymaker.utils.TimeUtils;
import io.github.biezhi.anima.page.Page;

import java.util.List;

/**
 * @AUTHOR soft
 * @DATE 2018/8/16 19:46
 * @DESCRIBE
 */
@Bean
public class VisitorService {
    @Inject
    private VisitorDao dao;

    /**
     * 异步添加，加快响应速度
     * @param ip ip地址
     */
    public void add(String ip) {
        new Thread(() -> {
            Visitor visitor = new Visitor();
            visitor.setIp(ip);
            visitor.setTime(TimeUtils.now());
            visitor.setLocation(IpUtils.getLocation(ip));
            dao.add(visitor);
        }).start();
    }

    /**
     * 以时间为条件进行分页查询
     * @param pageNo 页码
     * @param time 限定的时间（某天）
     * @return 分页数据
     */
    public Page<Visitor> list(int pageNo, String time) {
        return dao.page(pageNo, time);
    }

    public long count() {
        return count(null);
    }

    public long count(String time) {
        return dao.count(time);
    }

    public List<String> times() {
        return dao.times();
    }
}
